Relational databases store data in tables, with each table having one or more keys relating the table to other tables in the database. Requesting data from a relational database involves querying a relational database management system (RDBMS) using a relational database query language, such as Structured Query Language (SQL).
In recent years, software development, and specifically business-related software application development, has moved towards a cloud-based environment where developers interact with an application server to create and manage software objects related to the applications being developed. A programming language for developing applications on the application server is utilized by the developer to create and manage the software objects. An example of such a programming language is the Advanced. Business Application Programming (ABAP) language, developed by SAP SE, of Waldorf, Germany.
These application servers have traditionally stored the software objects in relational databases on traditional non-volatile storage devices (e.g., hard drives), and thus ABAP was designed to store data types compatible with relational databases. However, recent advances in computer memory have heralded the introduction of in-memory databases, where the data is persisted in system memory, such as random access memory (RAM), providing a database system that is much faster to access than traditional database systems. An example of such an in-memory database is the HANA database system, developed by SAP SE of Waldorf, Germany.
In-memory databases allow for new features and data formats not previously available for relational databases, such as multi-schema support. While ABAP can be updated to support the new features and data formats supported by in-memory databases, these new features and formats can change drastically as in-memory databases evolve. Each new version of an in-memory database could support a whole host of new features and formats, and redesigning ABAP to natively support the new features and formats each time such a new version is released is not practical.